Dependently typing JVM method invocation
نویسندگان
چکیده
Code certi cation is a promising technique that supports secure and e cient applications on the internet. Annotating code with index types allows strong program properties to be asserted and checked. In this paper, we report our experience of applying a restricted form of dependent types to JVMLi, a subset of Java Virtual Machine Language (JVML). The result is a type system for JVMLi that can guarantee safe elimination of some of the array bound checks. We show how our restriction on the type terms results in a clean coding of method invocation in this rst-order language with explicit control. We also discuss the trade-o between expressive power and decidability, which is a key issue of the type system for code certi cation. In addition, we describe our implementation of the type system.
منابع مشابه
Kaffemik: Supporting a distributed JVM on a single address space architecture
Java is increasingly used to develop large server applications. In order to provide powerful platforms for such applications a number of projects have proposed Java Virtual Machines (JVMs) that are based on network of workstations. These JVMs employ the message-passing paradigm, i.e. all communication between the distributed instances of the virtual machine take place using remote method invoca...
متن کاملThread Synchronization Policies in DrJava
The Architecture of DrJava DrJava is a pure Java application involving two Java Virtual Machines (JVMs): (i) a master JVM that supports the user interface, the DrJava editor, and DrJava compilation; and (ii) a slave JVM that runs the interpreter and unit tests. DrJava currently uses the Java RMI library to support communication between the master and slave JVMs. In the future, a lighter weight ...
متن کاملImplementing a Language with Flow-Sensitive and Structural Typing on the JVM
Dynamically typed languages are flexible and impose few burdens on the programmer. In contrast, static typing leads to software that is more efficient and has fewer errors. However, static type systems traditionally require every variable to have one type, and that relationships between types (e.g. subclassing) be declared explicitly. The Whiley language aims to hit a sweet spot between dynamic...
متن کاملA Formal Speci cation of Java Virtual Machine Instructions for Objects Methods and Subroutines
In this chapter we formally specify a subset of Java Virtual Machine JVM instructions for objects methods and subroutines based on the o cial JVM Speci cation the o cial Java Language Speci cation and Sun s JDK imple mentation of the JVM Our formal speci cation describes the runtime behaviors of the instructions in relevant memory areas as state transitions and most structural and linking const...
متن کاملA Formal Speci cation of JavaTM
In this chapter we formally specify a subset of Java Virtual Machine (JVM) instructions for objects, methods and subroutines based on the oocial JVM Speciication, the oocial Java Language Speciication and Sun's JDK 1.1.4 implementation of the JVM. Our formal speciication describes the runtime behaviors of the instructions in relevant memory areas as state transitions and most structural and lin...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2000